기록의 온도

코드치기 ㅈㄴ 귀찮네 [ponytail]

그런 날이 있죠? 아니 매일 그러긴 해요.

· 참치

Claude Code에서 ponytail 쓰는 법: 가장 게으른 시니어 개발자를 내 프로젝트에 앉히기

1. ponytail이 뭔가요?

Claude Code 같은 AI 코딩 도구에게 일을 시켜 보면 이런 경험이 있습니다. 날짜 선택 칸 하나만 달라고 했는데, 라이브러리를 설치하고 래퍼 컴포넌트를 만들고 스타일시트까지 추가해 버립니다. 요청하지 않은 추상화가 늘어나서 나중에 읽기도 고치기도 어려워집니다.

ponytail은 이 습관을 줄이려는 **지침 모음(스킬)**입니다. 저장소 소개 문구는 이렇습니다.

"Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote."

가장 게으른 시니어 개발자처럼 생각하게 만들자는 것입니다. 소개에는 이런 캐릭터가 나옵니다. 회사에서 버전 관리보다 오래 일한 긴 포니테일의 개발자가 있고, 누가 50줄짜리 코드를 보여 주면 아무 말 없이 한 줄로 바꿔 놓습니다.

중요한 점은 무조건 짧게 쓰라는 도구가 아니라는 것입니다. 저장소는 규칙을 이렇게 밝힙니다.

"The rule was never 'fewest tokens.' It is: write only what the task needs, and never cut validation, error handling, security, or accessibility."

작업에 필요한 만큼만 쓰되, 입력 검증·오류 처리·보안·접근성은 절대 줄이지 않는다는 뜻입니다. 게으른 것이지 무책임한 것이 아닙니다.

2. 어떤 원리로 동작하나요?

ponytail은 코드를 쓰기 전에 아래 순서로 스스로에게 묻게 합니다.

  1. 이게 꼭 있어야 하나? → 아니면 만들지 않는다 (YAGNI)
  2. 이 코드베이스에 이미 있나? → 있으면 재사용한다
  3. 표준 라이브러리가 해 주나? → 쓴다
  4. 브라우저/플랫폼 기능이 있나? → 쓴다
  5. 이미 설치한 의존성이 있나? → 쓴다
  6. 한 줄로 되나? → 한 줄로 쓴다
  7. 그래도 안 될 때만: 동작하는 최소한을 쓴다

저장소는 이 순서를 "먼저 변경과 관련된 코드를 읽은 다음"에 적용한다고 설명합니다. 즉 "해법은 게으르게, 읽는 것은 절대 게으르지 않게"가 원칙입니다.

그 밖에 소개 페이지에 나온 동작은 다음과 같습니다.

3. 효과가 어느 정도인가요? (저장소 자체 주장)

README에 나온 예가 이해하기 쉽습니다. 날짜 선택 칸을 요청하면 일반적인 에이전트는 라이브러리를 깔고 컴포넌트를 만드는 반면, ponytail을 켜면 이렇게 끝납니다.

<!-- ponytail: browser has one -->
<input type="date">

벤치마크 수치도 있습니다. 둘 다 저장소가 직접 낸 결과라는 점은 감안해서 보세요.

구분 조건 코드량 비용 시간 토큰
README(오래된 측정) Haiku 4.5, 12개 작업 -54% -20% -27% -22%
소개 페이지(2026-10-07) Opus 5.5, 39개 작업, 5회씩 -53% -26% -41% -45%

4. 설치하기 (Claude Code)

Claude Code를 열고 아래 두 줄을 한 번에 하나씩, 따로 입력합니다. 저장소가 "두 번에 나눠 보내야 설치가 된다"고 적어 두었습니다.

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

5. 명령어 총정리

명령어 하는 일
/ponytail 현재 강도를 알려 줍니다
/ponytail lite / full / ultra / off 강도를 바꾸거나 끕니다
/ponytail-review 지금 바뀐 코드(diff)에서 과한 설계를 찾아 "지울 것 목록"을 줍니다
/ponytail-audit 변경분이 아니라 저장소 전체를 점검합니다
/ponytail-debt 일부러 미뤄 둔 지름길(ponytail: 표식)을 모아 장부로 보여 줍니다
/ponytail-gain 실제로 얼마나 줄었는지 성적표를 보여 줍니다
/ponytail-help 빠른 도움말

강도 3단계

기본 강도는 환경 변수 PONYTAIL_DEFAULT_MODE로 정하거나, 설정 파일 ~/.config/ponytail/config.json의 defaultMode에 적을 수 있습니다. 서브에이전트에는 PONYTAIL_SUBAGENT_MATCHER로 적용 범위를 정합니다. 값이 없으면 모든 서브에이전트에 적용됩니다.

6. 처음 써 보기: 아주 기본 흐름

6-1. 켜져 있는지 확인

설치 후 Claude Code를 새로 열고 아래를 입력합니다.

/ponytail

인자를 주지 않으면 현재 강도를 알려 줍니다. 이 응답이 나오면 설치된 것입니다. /plugin을 열어 목록에서 켜져 있는지 보는 방법도 있습니다.

6-2. 평소처럼 요청하기

ponytail은 별도 호출 없이 세션 내내 켜져 있습니다. 평소 하던 대로 작업을 맡기면 됩니다.

6-3. 끝난 뒤 점검하기

/ponytail-review

방금 바뀐 코드에서 "이건 필요 없었다" 싶은 부분을 목록으로 받습니다.

7. 실제 사용 예시 (블로그 프로젝트 기준)

아래는 이해를 돕기 위해 구성한 가상의 대화입니다.

예시 1: 글 목록 페이지네이션

평소 요청

글 목록에 페이지 나누기를 추가해줘. 한 페이지에 10개씩.

ponytail 없이도 잘 만들 수 있는 요청이지만, 에이전트가 페이지네이션 라이브러리를 깔거나 일반화된 Paginator 클래스를 만들려는 경우가 생깁니다. ponytail이 켜져 있으면 사다리에 따라 D1의 LIMIT/OFFSET과 "이전/다음" 링크 두 개로 끝내려 합니다. 그래도 마지막에 이런 보고를 붙이도록 설계되어 있습니다.

건너뛴 것: 페이지 번호 목록(1 2 3 ...)은 만들지 않았습니다. 필요하면 요청하세요.
확인 못 한 것: 글이 수천 개일 때 OFFSET 성능

이 "건너뛴 것" 보고가 ponytail의 핵심입니다. 안 만든 것을 숨기지 않고 알려 주기 때문에, 정말 필요한 기능은 다시 요청하면 됩니다.

예시 2: 이미 있는 것 재사용시키기

관리자 글쓰기 화면에 날짜 선택 칸을 넣어줘.

ponytail은 라이브러리를 새로 설치하기 전에 "브라우저에 이미 있나?"를 먼저 묻기 때문에 <input type="date">로 끝내려 합니다. 이미 만든 입력 컴포넌트가 있다면 그걸 재사용합니다. 코드를 먼저 읽은 다음에 판단한다는 점이 중요해서, 파일 구조를 알려 주는 한 문장을 요청에 넣어 두면 더 정확해집니다.

src/components/Input.js를 재사용해서 날짜 선택 칸을 넣어줘.

예시 3: 변경 후 과한 부분 정리하기

기능을 여러 개 만든 뒤에 이렇게 입력합니다.

/ponytail-review

저장소는 각 지적마다 코드가 무엇을 하는지, 무엇이 잘못될 수 있는지, 어떻게 고치는지, 그대로 두면 어떻게 되는지를 적어 준다고 설명합니다. 소개 페이지는 이 리뷰가 이제 버그, 보안, 부하, 테스트 누락도 같이 본다고 적고 있습니다. 결과를 보고 "삭제 목록" 중 동의하는 것만 적용하라고 시키면 됩니다.

예시 4: 쌓인 지름길 정산하기

/ponytail-debt

ponytail이 "일단 이렇게 해 두자"고 남긴 표식 주석을 모아서 장부로 보여 줍니다. 몇 주 뒤에 "이 지름길 중 지금 갚을 것"을 고를 때 유용합니다.

예시 5: 저장소 전체 대청소

/ponytail-audit

변경분이 아니라 저장소 전체를 훑습니다. 처음 도입하는 기존 프로젝트나 몇 달 운영한 프로젝트에 한 번 돌려 보기 좋습니다.

8. 효율을 높이는 방법

저장소가 직접 이렇게 쓰라고 말한 것과 제 판단을 구분해서 정리합니다.

  1. 요청에 "무엇을 만들지"뿐 아니라 "어디에 있는 걸 쓸지"를 적습니다. ponytail은 코드를 읽고 재사용하려 하므로, 쓸 파일 이름을 알려 주면 정확도가 올라갈...거라고 생각합니다(제 판단).
  2. 처음에는 full(기본값)로 시작합니다. 강한 모드는 필요해졌을 때 올립니다(제 판단).
  3. 기능 하나를 끝낼 때마다 /ponytail-review를 돌리는것도 나쁘지 않아보여요. 과한 설계가 쌓이기 전에 정리됩니다.
  4. "건너뛴 것" 보고를 읽습니다. 응답 끝의 건너뛴 항목 중 필요한 것만 다음 요청으로 가져오면, 사용하지 않는 기능이 쌓이지 않습니다.
  5. 지켜야 할 것은 요청에 명시합니다. 예를 들어 "로그인 세션 검증은 서버에서 반드시 확인해줘"처럼 적습니다. 저장소는 보안·검증·접근성은 줄이지 않는다고 하지만, 중요한 부분은 말로 못 박아 두는 편이 안전합니다(제 판단).
  6. /ponytail-gain으로 실제 효과를 확인합니다. 내 프로젝트에서 얼마나 줄었는지 보고 강도를 조절하세요.
  7. /ponytail-debt를 주기적으로 봅니다. 미뤄 둔 지름길을 눈으로 확인할 수 있습니다.

9. 알아둘 점과 한계

10. 한 줄 요약

ponytail은 "AI가 요청하지 않은 것까지 만드는 습관"을 줄여 주는 지침입니다. 설치는 두 줄, 평소처럼 쓰다가 /ponytail-review로 점검하고, 건너뛴 부분은 필요할 때만 다시 요청하세요.


참고 자료

#ponytail #개발